const { defineConfig } = require('@vue/cli-service');
const path = require('path');
const resolve = dir => {
  return path.join(__dirname, './', dir);
};
module.exports = defineConfig({
  transpileDependencies: true,
  pwa: {
    iconPaths: {
      favicon32: 'favicon.ico',
      favicon16: 'favicon.ico',
      appleTouchIcon: 'favicon.ico',
      maskIcon: 'favicon.ico',
      msTileImage: 'favicon.ico'
    }
  },
  // 部署应用包时的基本URL,从 Vue CLI 3.3新增（替换baseUrl)
  publicPath: './',

  // 打包文件输出目录 构建时传入 --no-clean 可关闭该行为
  outputDir: 'dist',

  // 打包文件时静态资源 (js、css、img、fonts)输出目录 (相对于 outputDir目录）
  assetsDir: '',

  // 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。
  indexPath: 'index.html',
  lintOnSave: false,
  configureWebpack: config => {

    if (process.env.NODE_ENV === 'production') {
      // 为生产环境修改配置...
    } else {
      // 为开发环境修改配置...
    }
  },

  chainWebpack: config => {
    config.resolve.alias
      // .set('@', resolve('src')); // key,value自行定义，比如.set('@@', resolve('src/components'))
      // .set('_c', resolve('src/components'));
      // .set('@', resolve('src'))
      .set('@', path.resolve(__dirname, 'src'))
      .set('@assets', path.resolve(__dirname, 'src/assets'));
    // // 图片处理配置
    // const imagesRule = config.module.rule('images');
    // imagesRule.uses.clear(); // 清除已有的 loader
    // imagesRule
    //   .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
    //   .use('url-loader')
    //   .loader('url-loader')
    //   .options({
    //     limit: 10000, // 小于10KB的图片转为base64
    //     name: 'img/[name].[hash:7].[ext]', // 指定输出路径和文件名
    //     fallback: 'file-loader', // 大于limit时，回退使用file-loader
    //     publicPath: '/', // 指定 publicPath，用于生产环境
    //     esModule: false // 兼容 CommonJS 模块
    //   });
    // const imagesRule = config.module.rule('images');
    // imagesRule.uses.clear(); // 清除已有的 loader
    // imagesRule
    //   .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
    //   .use('url-loader')
    //   .loader('url-loader')
    //   .options({
    //     limit: 10000, // 小于10KB的图片转为base64
    //     name: 'img/[name].[hash:7].[ext]', // 指定输出路径和文件名
    //     fallback: 'file-loader', // 大于limit时，回退使用file-loader
    //     publicPath: '/', // 指定 publicPath，用于生产环境
    //     esModule: false // 兼容 CommonJS 模块
    //   });
  },
  productionSourceMap: false,
  devServer: {
    // host: 'localhost',
    host: "0.0.0.0",
    port: 8082, // 端口号
    // https: false, // https:{type:Boolean}
    open: true, //配置自动启动浏览器 http://XXX.XXX.X.XX:7071/rest/XXX/
    hot: true,
    // hotOnly: false,
    // hotOnly: true, // 热更新
    // proxy: 'http://localhost', // 配置跨域处理,只有一个代理
    //   proxy: {  // 配置跨域处理,只有一个代理
    //     '^/sso': {
    //         target: process.env.VUE_APP_SSO, // 重写路径
    //         ws: true,   //开启WebSocket
    //         secure: false,      // 如果是https接口，需要配置这个参数
    //         changeOrigin: true
    //     }
    // }


    // proxy: { //配置自动启动浏览器

    //  "/XX/*": {
    //    target: "http://XXX.XXX.X.XX",

    //    changeOrigin: true,

    //    // ws: true,//websocket支持

    //    secure: false

  },
});